Any application program must contain a String as a type of variable. To store different attributes like usernames and passwords, etc., string references are used. String objects are immutable in Java. Immutable simply means that something cannot be altered or changed.
Once a String object is created, it cannot have its data or state changed; instead, a new String object must be created.
Example of Immutable String in java
Example of Immutable String in java
// Java example of Immutable String
publicclass Main {
publicstaticvoid main(String args[]){
String str="Welcome ";
s.concat("To India"); //The string is added at the end by the concat() method.
System.out.println(s); //it will print welcome instead of India due to Immutable String
}
}
Output:
Welcome
Welcome is not changed here, but a new object with Welcome To India is created. That is why String is referred to as immutable.
Example of String explicitly assign it to the reference variable
Example of String explicitly assign it to the reference variable in java
publicclass Main {
publicstaticvoid main(String args[]){
String str="Welcome";
str= str.concat("To India"); //if we explicitly assign it to the reference variable
System.out.println(str); //it will print Welcome To India
}
}
In this case, str points to the "Welcome To India" message. Please keep in mind that the Welcome object has not been changed.
Output:
Welcome To India
Why String objects are immutable in Java
Since Java makes use of the String literal concept. Assume there are five reference variables, all of which point to the same thing, "Sachin." All reference variables will be impacted if one reference variable alters the value of the object. Because of this, String objects in Java are immutable.
Several String characteristics make String objects immutable.
ClassLoader : A String object is used as an argument by a Java ClassLoader. Consider the possibility that the value could change and the class that is supposed to be loaded could change if the String object is modifiable.String is immutable in order to prevent this kind of misunderstanding.
Thread Safe : Since the String object cannot be changed, we don't need to worry about the synchronization needed when using it in multiple threads.
Security : Immutable String objects load the appropriate class to prevent additional errors, as we have seen with class loading. As a result, the application program becomes more secure. Think about a payment software illustration. Because String objects are immutable, no outsider can change the username or password. The application program may become more secure as a result.
Heap Space : The immutability of String contributes to a reduction in the amount of heap memory used. The JVM checks to see if the value is already present in the String pool when we attempt to declare a new String object. The new object is given the same value if it already exists. Java can effectively utilize the heap space thanks to this feature.
Why String class cannot be override in Java
The String class's final status is due to the fact that its methods cannot be overridden by any other classes. In order to give the new String objects and the old String objects the same features.
Post your comment